#include "appjson.h"

AppJson::AppJson()
{

}

QJsonDocument AppJson::readJsonFromFile()
{
    QString path = qApp->applicationDirPath();
    path += "\\"+m_AppPath;


    QFile file(path);
    if (!file.exists()) {
        // 如果文件不存在，则创建一个空的JSON对象并保存到文件中
        QJsonObject jsonObject;
        QJsonDocument jsonDoc(jsonObject);
        if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
            QTextStream out(&file);
            out << jsonDoc.toJson();
            file.close();
        }
        return jsonDoc;
    }

    if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        QTextStream in(&file);
        QString jsonString = in.readAll();
        file.close();
        return QJsonDocument::fromJson(jsonString.toUtf8());
    }
    return QJsonDocument();
}

void AppJson::saveJsonToFile(const QJsonDocument &jsonDoc)
{
    QString path = qApp->applicationDirPath();
    path += "\\"+m_AppPath;

    QFile file(path);
    if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        QTextStream out(&file);
        out << jsonDoc.toJson();
        file.close();
    }
}

void AppJson::addJsonValue(QJsonDocument &jsonDoc, const QString &key, const QJsonValue &value)
{
    QJsonObject jsonObject = jsonDoc.object();
    jsonObject[key] = value;
    jsonDoc.setObject(jsonObject);
}
